#ifndef __TREE_NODE_H__
#define __TREE_NODE_H__
#include <iostream>
using namespace std;

template<typename T>
class TreeNode;

template<typename T>
class TreeNode
{
public:
	TreeNode();
	TreeNode(const T &t, int left = -1, int right = -1);
	TreeNode(const TreeNode<T> &tNode);
	void setLeft(int index);
	void setRight(int index);
	void setNode(const T &tNode);
	int getLeft();
	int getRight();
	T getNode();
	const TreeNode<T>& operator = (const TreeNode<T> & t);
	bool operator > (const TreeNode<T> & t);
	bool operator == (const TreeNode<T> & t);
	bool operator < (const TreeNode<T> & t);


public:
	T tNode;
	int left;
	int right;
};

#endif // __TREENODE_H
